1. Field of the Invention
The present invention relates to a communication process in a set of distributed systems through an internet type network.
More particularly, the invention relates to the naming, the addressing, and the routing of information between the distributed systems, via one or more networks or subnetworks using internet technology.
Within the scope of the present invention, the term xe2x80x9cinternetxe2x80x9d should be understood in its most general sense. It specifically includes, in addition to the global network of computers known as the xe2x80x9cInternetxe2x80x9d per se, private corporate networks or the like, known as xe2x80x9cintranets,xe2x80x9d and the networks that extend them to the outside, known as xe2x80x9cextranets.xe2x80x9d
It is also useful, for purposes of clarity, to review several definitions used in the description of the present invention.
Hereinafter, a unit, a data processing machine, or more generally, a platform, using an operating system (xe2x80x9cOSxe2x80x9d) will be called a xe2x80x9csystem.xe2x80x9d These systems are connected to one another by one or more networks or subnetworks, at least some of which use internet technology, in the sense mentioned above. Hereinafter, the terms xe2x80x9cnetworksxe2x80x9d and xe2x80x9csubnetworksxe2x80x9d will be used interchangeably.
These systems host xe2x80x9cservers.xe2x80x9d A server is generally defined as being software or a software entity that provides a given service (for example, file transfer software).
In internet technology, so-called xe2x80x9cIPxe2x80x9d addresses are used. An address of this type is structured and comprises a subnetwork address, called a prefix, and an address of an entity in this subnetwork.
Referring again to a server, it is addressable according to the prior art by means of an IP address as just defined and a port number, which will be designated Pi, with i being an arbitrary subscript. This port number typically comprises two bytes and makes it possible to reach the server i in the system.
In summary, if a system with the arbitrary subscript 0 is referenced S0, and is associated with an IP address notated xe2x80x9cX, X0xe2x80x9d, this means that this system S0 is connected to the subnetwork with the prefix X, with X0 as its address in this subnetwork. A system can naturally be connected to several subnetworks. In this case, it has as many IP addresses as there are subnetworks.
Although the invention applies to all sorts of existing applications or services, it applies more particularly to distributed systems using xe2x80x9cobjectxe2x80x9d technology and to communications of the xe2x80x9cclient-serverxe2x80x9d type. To explain the concept, without in any way limiting its scope, the following will keep to this preferred context of the invention, unless stated otherwise. In other words, this particular technique applies to the exchanges of messages between client objects and server objects, which objects can be distributed throughout the entire system.
2. Description of Related Art
As is well known, systems connected to one or more networks or subnetworks are grouped into domains.
In the past, the networks and the systems were dissociated, and each domain used its own mechanisms for naming and addressing entities as well as for routing information in the networks and systems.
Moreover, the mechanisms were not unified within the same network or system domain. A first simplification or streamlining occurred, with respect to networks, with the emergence of internet.
As for the systems themselves, the degree of streamlining is generally very low. However, there have been a few attempts at streamlining. For example, with respect to address directories, it is possible to use the access method known by the acronym xe2x80x9cLDAPxe2x80x9d (xe2x80x9cLightweight Directory Access Protocolxe2x80x9d) and the architecture that conforms to the xe2x80x9cX500xe2x80x9d standard. In addition, services such as xe2x80x9cDNSxe2x80x9d (xe2x80x9cDomain Name Serverxe2x80x9d) are beginning to be integrated into operating systems (xe2x80x9cOSxe2x80x9d) or into xe2x80x9cmiddleware.xe2x80x9d However, there is still a big difference between the xe2x80x9cnetworkxe2x80x9d approach and the xe2x80x9csystemxe2x80x9d approach.
In summary, it is clear that in the prior art, the systems, subsystems, services and software applications normally use specific solutions for the naming, addressing and routing of information. This situation is not without its drawbacks, and several of these will be discussed.
First of all, the multiplicity of solutions makes the process for configuring the components listed above very complex.
The configurations are normally static. However, as noted, there is a trend toward using directories of the xe2x80x9cX500xe2x80x9d type for the system objects: the users, the resources, the services and the applications. Nevertheless, the network objects, which are managed by the internet domain name servers (xe2x80x9cDNSxe2x80x9d), are still excluded and are not integrated with the system objects.
It follows that when a client interacts with a server, specific addressing and name resolution services are used. For example, naming services like those known by the name xe2x80x9cCORBAxe2x80x9d (defined by the xe2x80x9cObject Management Groupxe2x80x9d consortium) may be cited. These services use very different mechanisms. Other services are known, for example the naming service of the xe2x80x9cDCExe2x80x9d (xe2x80x9cOSFxe2x80x9d in a distributed environment), or of xe2x80x9cTUXEDOxe2x80x9d (distributed transaction service known in the xe2x80x9cUNIXxe2x80x9d environment, xe2x80x9cTUXEDOxe2x80x9d and xe2x80x9cUNIXxe2x80x9d being registered trademarks).
In general, clients that address a remote entity managed by a system, service or application invoke a name service. This requires the name of the network and the network address of the system that contains the entity to be reached.
The drawbacks inherent in these solutions are the following: a multiplicity of naming services, directories, and tables of correspondences between network and system addresses, the complexity of the configuration processes, and above all, the need for the client (or user) to know which system (i.e., which machine) contains the object addressed, or more generally, the entity addressed.
The processes according to the prior art therefore have numerous drawbacks. Furthermore, it may be added that they do not meet the current needs, or at least meet them inadequately. The most important needs are listed below.
First of all, as has been noted, the configuration is most often static. The current need is to move toward xe2x80x9czero administration,xe2x80x9d based on an automatic and dynamic configuration.
A second need relates to portability. An object, or more generally an entity, belonging to a xe2x80x9cDNSxe2x80x9d domain must be able to migrate, i.e., to leave its domain, while remaining addressable as though it had stayed in its domain.
A third need, which goes hand-in-hand with the second, is that the servers must be independent from the host platforms. This setup allows unlimited migration.
A fourth need relates to security, in the broadest sense of this concept: authentication, access control, integrity and confidentiality of the exchanges. Generally, this is called the xe2x80x9cAICxe2x80x9d conceptxe2x80x94for xe2x80x9cAvailabilityxe2x80x94Integrityxe2x80x94Confidentiality.xe2x80x9d These requirements must be met from end to end between, for example, the client object and the server object, i.e., a software entity, and not just during the passage through the network or networks, i.e., between physical machines.
A fifth need relates to the compatibility, or coexistence, between the various internet protocols, especially between the widely used xe2x80x9cIPV4xe2x80x9d version and the more recent xe2x80x9cIPV6xe2x80x9d version, this version being a subset of the xe2x80x9cIPNGxe2x80x9d (Internet Protocol New Generationxe2x80x9d) standard currently being implemented.
However, it must be noted that an address conforming to the IPV4 protocol has only four bytes, or 232 theoretical addresses, actually far fewer because of the structural hierarchy (particularly the presence of a prefix). Projections into the future have shown that, given the predictable growth of the Internet, a real shortage of addresses should occur during the period from 2005 to 2011. Also, since 1995, recommendations for the adoption of a new protocol, IPV6, have been published (xe2x80x9cInternet Engineering Task Forcexe2x80x9d and xe2x80x9cIPngxe2x80x9d work groups). An address conforming to this IPV6 protocol comprises sixteen bytes, which allows for a much larger address space, even if not all of the addresses are actually usable, as in the case of the IPV4 protocol. In effect, this has been calculated to represent 6.65xc3x971023 network addresses per square meter of the surface of the planet. A more detailed description of this protocol may be found in the in the book by A. Thomas, xe2x80x9cIPng and the TCP/IP protocols,xe2x80x9d published by Wiley Computer Publishing, 1996.
The process according to the invention further multiplies the need for numbers of distinct addresses, as will be shown. For all of these reasons, it is preferable to use the IPV6 protocol within the scope of the invention.
Consequently, the object of the invention is to eliminate the drawbacks of the prior art, while meeting the current needs, some of which have been mentioned, without significantly increasing costs, while possibly even obtaining a reduction of these costs.
To this end, the systems, accepting what has been given, are considered to be virtual networks, which hereinafter will be called xe2x80x9csystem virtual networksxe2x80x9d or xe2x80x9cSVNxe2x80x9d. In other words, the software entities, for example software objects in a preferred embodiment, become directly addressable in a system. This system constitutes a node of the virtual network xe2x80x9cSVNxe2x80x9d and also a node of the xe2x80x9crealxe2x80x9d network, i.e., the Internet, intranet or extranet. The system acts as a gateway that interconnects the nodes of the virtual network xe2x80x9cSVNxe2x80x9d to the aforementioned xe2x80x9crealxe2x80x9d network.
In a preferred variant of the invention, the process also provides a dynamic, i.e., automatic, configuration capability. To do this, it uses the above-mentioned IPV6 protocol. The latter characteristic also offers the capability to meet certain additional requirements, such as portability and/or security.
The physical and logical objects, or more generally the physical and logical entities, whether they are of the system or the network type, i.e., the clients, servers, systems, gateways, routers, etc., are at the same address level. Common mechanisms are used for the naming, the addressing, and the name resolution and routing services. When a client establishes a connection with a software server that, in a preferred variant of embodiment, is an object container, there is no longer a need to also provide the name of the system (i.e., the machine and its services) that contains this server.
Hence, the subject of the invention is a process for communication in a set of distributed systems via at least one internet type network, said set being divided into at least one domain comprising systems addressable via said network by means of a first series of internet type addresses stored in a domain name directory and each system being connected to said network via a standard interface module, standard software layers comprising a stack of addresses of the first series and internet type communication protocols, and hosting at least one software entity, characterized in that said software entities and said systems are each associated with an internet type address of a second series, in that each system is configured into a so-called system virtual network, to which the system itself and said software entities are connected via specific interface modules and specific software layers comprising a stack of addresses of the second series and internet type communication protocols, and in that said addresses and names of the systems and the software entities connected to said system virtual networks are stored in said domain directory, making it possible to directly address any of said software entities hosted in any of said systems.
Hence, it is clear that the process according to the invention provides many advantages, including the capability for a client (or more generally for a user) to directly address a server (or more generally a software entity), and not the system that contains it.